home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / dev / e / AEPD08.lha / EPD08 / Dies_und_das / Inhalt_EPD1-7.info < prev    next >
Text File  |  1994-07-26  |  1KB  |  76 lines

  1. /*ORIGINALE in " C "  1992 (C) Matthias Zepf für Amiga Plus 11/92    */
  2. /* Umsetzung auf AmigaE   FB  1994 */
  3.  
  4.  
  5. DEF feld[110]:ARRAY OF LONG,anzahle 
  6.  
  7. /* "feld[]" enthält die zu sortierenden Zahlen
  8.    "anzahle" die anzahl der zu sortierenden zahlen*/
  9.  
  10.  
  11. PROC main()
  12.  
  13.  
  14. WriteF('\n\n')
  15.  
  16. zufall()  /* Erzeugung der Zufallszahlen*/
  17. WriteF('Zufall:\n')
  18. zeigen() /* Zahlen zeigen*/
  19. shellsort()
  20. WriteF('shellsort \n')
  21. zeigen()
  22. WriteF('\n\n')
  23.  
  24. zufall() 
  25. WriteF('Zufall:\n')
  26. zeigen()
  27. rhepsort()
  28. WriteF('hepsort recursiv\n')
  29. zeigen()
  30.  
  31. WriteF('\n\n')
  32. zufall() 
  33. WriteF('Zufall:\n')
  34. zeigen()
  35. ihepsort()
  36. WriteF('hepsort interactiv\n')
  37. zeigen()
  38.  
  39. WriteF('\n')
  40.  
  41. ENDPROC
  42.  
  43.  
  44.  
  45. PROC zeigen()
  46.  DEF i,j
  47.   i:=0
  48.   REPEAT
  49.     j:=0
  50.     REPEAT
  51.       WriteF ('\d[4]',feld[(i*15)+j])
  52.       INC j
  53.     UNTIL j=15
  54.     WriteF('\n')
  55.     INC i
  56.   UNTIL i=7
  57. ENDPROC
  58.  
  59. /* shellsort--------------------------------------------*/
  60. PROC shellsort ()
  61. DEF i,j,k,l,m,wert
  62.  
  63. l:=41
  64. WHILE l>0
  65.   m:=0
  66.  WHILE m<l
  67.   i:=m+l
  68.   WHILE i< anzahle 
  69.    wert:=feld[i]
  70.    j:=i
  71.    WHILE ((j-l)>=0) AND (feld[j-l]>wert)
  72.     j:=j-l
  73.    ENDWHILE
  74.    IF j<>i
  75.      k:=i 
  76.